home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 626-637 / disk_628 / set040 / set040.doc < prev    next >
Text File  |  1992-05-06  |  23KB  |  528 lines

  1.  
  2. PROGRAM  
  3.                 Set040
  4.                                 
  5. SOURCE          Written in 100% assembler using Macro68
  6.  
  7. FUNCTION 
  8.         1. To remap Kickstart V2.04 or greater from ROM into 
  9.            FAST RAM on an Amiga equipped with a 68040 CPU, using 
  10.            the MMU, with optional parameters for greater 
  11.            compatibility between various 68040 boards.
  12.            An optional switch allows it to patch the Kickstart
  13.            to stop drives from clicking.  This patch will work
  14.            on any version, including future versions, as it
  15.            searches the trackdisk.device for the required 
  16.            instruction and changes this instructon before 
  17.            installing the remap.
  18.  
  19.         2. To allow this FASTROM remap to be removed and
  20.            all resources reclaimed.
  21.    
  22.         3. To load a different Kickstart than the one currently
  23.            in ROM, and use the MMU to boot into this Kickstart.   
  24.           
  25.         4. To manipulate both caches in the 68040 and the 
  26.            two Data Cache modes.
  27.    
  28.         5. To display certain information regarding the
  29.            setting of some 68040 registers and modes.
  30.    
  31.         6. To switch between the 68040 and 68030 on a Progressive
  32.            Peripherals & Software 68040 card in an Amiga A3000-25MHZ   
  33.    
  34. ACKNOWLEDGEMENTS
  35.  
  36.         Thank you to Dave Haynie and Michael Sinz for their answers
  37.         to my questions regarding the 68040 many times over EMAIL.
  38.  
  39.         Thank you to Progressive and Peripherals and Software for 
  40.         their generosity with the A3000/68040 card.
  41.  
  42.         Thank you to my friend Paul Coward (Digisoft) for a brilliant 
  43.         assembler, Macro68 V3.xxx.  Set040 assembles with an average
  44.         pass time of .41 secs to executable.  Try that C programmers!!
  45.  
  46.         Thank you to Fred Fish for his continuing work in distribution
  47.         of our programs.  Without him, distribution would be much more
  48.         difficult.
  49.  
  50. DOCUMENT FILE   The spelling in this document file is in Australian.
  51.         Spelling in some Countries may vary, but this document
  52.         is correct.
  53.                 
  54. AUTHOR        Nic Wilson
  55.         Nic Wilson Software
  56.         138d South Street
  57.         TOOWOOMBA QUEENSLAND 4350
  58.         Australia
  59.                 
  60.         EMAIL cbmvax!cbmaus!wilson!nic@uunet.uu.net
  61.  
  62.           or  cbmehq!cbmaus!wilson!nic@cbmvax.commodore.com
  63.   
  64.         TELEPHONE +61 76 358539 After Hours Australian Time
  65.                   +61 76 358384 Work  Hours Australian Time
  66.         FAX       Same as Work Telephone 
  67.             
  68. COPYRIGHT    This program, and its source code & document files are 
  69.         Copyright (C) Nic Wilson Software 1991-1992.
  70.                 
  71. DISTRIBUTION    The program is Shareware and may be freely distributed
  72.         on the condition that no profit is gained from this
  73.         distribution either directly or indirectly.  A small
  74.         copying fee, no more than the cost of 2 (two) average
  75.         3.5 inch blank disks, (including the supplied disk).
  76.  
  77.         Crunching of the executable file is considered a breach
  78.         of this agreement, due to the fact all current crunchers
  79.         I have tested fail on the 68040 processor.  Archival
  80.         in the form of 'lharc' type programs is permitted.  
  81.                 
  82.         Commercial companies may distribute this program as
  83.         a part of a disk of utilities supplied with their
  84.         68040 boards without permission, on the condition that
  85.         I am notified of your intention to distribute, by phone,
  86.         fax, email or letter.  All documents files must be 
  87.         included on disk or printed form exactly as written 
  88.         here.  
  89.  
  90. EXCEPTIONS    Progressive Peripherals & Software are exempt from
  91.         the above distribution conditions.
  92.                                 
  93.         Fred Fish is exempt from the above distribution
  94.         conditions.
  95.                 
  96. ARCHIVE        The following files are included in the Set040 archive.
  97.                 
  98.         Set040        - executable
  99.         Set040.doc    - document file
  100.         MMUSR         - executable
  101.         MMUSR.doc     - document file
  102.         kickspeed     - executable
  103.         kickspeed.doc - document file
  104.         AddMem        - executable 
  105.  
  106. DONATIONS    All donations in the form of cash, money order,
  107.         travellers cheques, bank draft (in AUS dollars),
  108.         goods, software or hardware will be gratefully accepted,
  109.         and ensure further shareware programs from me.
  110.         Overseas users, please do not send personal cheques.  
  111.         It is very difficult to convert them into cash.
  112.     
  113.         I give my sincere thanks to all those users who
  114.         have donated to my work in the past.  It is with
  115.         your continuing support to all programmers that the 
  116.         Amiga has such a vast amount of quality shareware 
  117.         programs available, and that I am able to continue 
  118.         work on shareware programs aswell as commercial ones.   
  119.  
  120. REQUIREMENTS
  121.         Depending on the function the requirements are different 
  122.         and are as follows:
  123.                 
  124. FASTROM install - AmigaDOS V2.04 or greater, 68040 CPU, 1MB FAST RAM or more
  125. KICKROM install - AmigaDOS V2,04 or greater, 68040 CPU, 1MB CHIP RAM minimum
  126. CHIP to FASTROM - AmigaDOS V1.2  or greater, 68040 CPU, 1MB FAST RAM or more
  127. 68040 <-> 68030 - AmigaDOS V2.04 or greater, A3000 with PP&S 68040 board
  128.                 
  129. OTHER INFO
  130.         This program was written and tested on an Amiga
  131.         A3000 with a Progressive Peripherals & Software
  132.         68040 (V1.0) card.  This is the only card it has been
  133.         tested on.  If it works on your card please let
  134.         me know, if it doesn't let me know too and maybe
  135.         we can rectify it for other 68040 cards.  See below
  136.         for more information on this.
  137.                                 
  138.                 
  139. USAGE        Set040 <switch>
  140.  
  141.         If no switch is supplied, Set040 will display information
  142.         on cache settings, etc., unless Set040 finds a 'KICKROM'
  143.         installation.  In this case it will perform the 'KICKROM'
  144.         to 'FASTROM' change before displaying the information.
  145.         Because some switch arguments use upper case characters, 
  146.         the entire switch and argument characters are case sensitive 
  147.         and must be entered as shown here.  
  148.  
  149.         Only one '-' switch is allowed.  Any others will be ignored.
  150.         The '-f' switch allows multiple arguments (EG. -fzwi).
  151.         The '-k' takes one argument for path/filename.
  152.         The '-c' switch allows multiple arguments (EG. -cIDc).
  153.         The '-r' switch takes no arguments.            
  154.         The '-s' switch takes no arguments.
  155.                         
  156.   ?        = Displays a 'USAGE' string on the current CLI.
  157.    
  158.    **************
  159.    FASTROM OPTION
  160.    **************
  161.           
  162.    -f<args> =    Install FASTROM remap with optional parameters
  163.         With no further arguments, -f will install a FASTROM 
  164.         remap, disable caching of ZorroII memory space.
  165.         Mother board space & ZorroIII memory area will be set 
  166.         as Copyback cachable.  Both the data and instruction caches 
  167.         will be enabled.  Workbench screen title will be changed 
  168.         to "Amiga Fastbench".
  169.  
  170.         The FASTROM option is best placed in your startup-sequence
  171.         so that the boot process can gain from the extra speed of
  172.         Kickstart in ram.  I recommend placing it as the very first
  173.         line of the startup-sequence. 
  174.   
  175.   <args>
  176.   
  177.    z        = Allow caching of ZorroII memory ($200000 - $A00000).
  178.               Only give this argument if you have nothing but memory 
  179.               between these addresses.  If you are not sure, you can 
  180.               use my SysInfo program to find out.
  181.    
  182.    w        = Set addresses $1000000 - $3FFFFFF as WriteThrough 
  183.               (SEE NOTES).
  184.               
  185.    c        = Set addresses $4000000 - $FFFFFFF as WriteThrough 
  186.               (SEE NOTES).
  187.    
  188.    d        = Do not enable data cache. 
  189.    i        = Do not enable instruction cache. 
  190.    
  191.               These two may be required for special cases or if you normally
  192.               operate with one or more of your caches disabled.
  193.               
  194.    n        = Install patch to stop floppy drives clicking.
  195.    
  196.    t        = Do not change the Workbench screen title.
  197.               By default it will change it to "Amiga Fastbench"
  198.               as an obvious sign that FASTROM is installed. 
  199.               This argument will overide this and leave the title unchanged. 
  200.               
  201.    EXAMPLE
  202.    -------    To install FASTROM and Click free drives -> Set040 -fn              
  203.                     
  204.    **************
  205.    KICKROM OPTION
  206.    **************
  207.    
  208.   -k <path> =    Install and boot different Kickstart than the one currently 
  209.         in ROM
  210.         
  211.   <path>    =    Full path and filename to a Kickstart file, or, if using
  212.         a Kickstart disk, <path> must be a floppy drive (eg. DF0:)
  213.  
  214.         The Kickstart file can be a 256K file (1.2 or 1.3) or a
  215.         512k file (2.0x) as saved by the "Update2.x" or "Update1.3"
  216.         program supplied with your A3000.
  217.  
  218.         The Kickstart disk can be either a standard A1000 Kickstart
  219.         or an A3000 SuperKickstart disk.  If a SuperKickstart is used
  220.         a requester window will open and prompt you for the Kickstart
  221.         version you require.  These choices will be "V1.3" or "V2.0".
  222.         If the drive you specified does not have a disk in it, you will
  223.         be prompted for a disk with a requester.
  224.  
  225.         This function requires an Amiga with at least 1MB of chip memory 
  226.         for it to work.  It will attempt to allocate around 576k of
  227.         memory within the chip memory area as high as possible.  The
  228.         allocated chip memory from this allocated block to the end of
  229.         the next one megabyte boundary will be hidden from exec after
  230.         the reboot.  When Set040 is run again and the CHIPROM to FASTROM
  231.         conversion is done, this hidden memory will be added to the free
  232.         pool.  If your chip memory usage is large, Set040 may not be able 
  233.         to obtain the required memory.  If this happens I suggest closing 
  234.         as many programs as possible or re-booting with a minimum set-up 
  235.         so that Set040 can allocate the ram it requires.  
  236.  
  237.         Even though we are about to re-boot, into a new kickstart, Set040
  238.         will NOT just take the ram required, as this may cause an 
  239.         exception.  If the memory allocated, falls within the first 
  240.         megabyte on an Amiga with two megabytes of chip ram, the second 
  241.         megabyte will be lost completely unless added in with the 'addmem'
  242.         command.  This should not happen under normal circumstances, as 
  243.         Exec normally allocates memory from lower addresses first.  This 
  244.         means that the memory allocated by Set040 should always fall 
  245.         within the highest one megabyte block.  
  246.  
  247.         A brief message will appear, informing you that the new kickstart
  248.         is being patched to prevent the MMU from being disabled.  
  249.         After a short delay the new Kickstart will be booted.  During 
  250.         this delay the power light will flash rapidly to let you know 
  251.         this function is operating successfully.
  252.  
  253. KICKSTART              
  254. 1.2 - 1.3    If the new Kickstart is 1.2 or 1.3,  only the remaining chip 
  255.         memory will be available after booting.  Any FASTRAM on the 
  256.         A3000 mother board will not be available.  This memory must be 
  257.         added to the system with the supplied "addmem" command.  It has
  258.         been done this way incase the fast memory is not required for 
  259.         some reason.  The usage for the 'addmem' command for different 
  260.         memory sizes is shown below.  When the FASTRAM has been added, 
  261.         you may run Set040 again with no arguments.  Set040 will recognise
  262.         that the set-up is a CHIPRAM set-up and will move it to FASTRAM if
  263.         there is sufficient available.  The amount of CHIPRAM that was 
  264.         previously hidden will be added to the free pool.
  265.  
  266.         AddMem usage for A3000 32bit wide fast ram are as follows:
  267.  
  268.         A3000 4MB  32 bit ram = AddMem 7C00000 7FFFFFF
  269.         A3000 8MB  32 bit ram = AddMem 7800000 7FFFFFF
  270.         A3000 12MB 32 bit ram = AddMem 7400000 7FFFFFF
  271.         A3000 16MB 32 bit ram = AddMem 7000000 7FFFFFF
  272.               
  273. KICKSTART
  274.   2.0x
  275.         If the new Kickstart is 2.0x (V37+)your FASTRAM will still be 
  276.         available and your hard disk would have booted.  The addmem 
  277.         command will not be required.  This set-up will still be in 
  278.         CHIPRAM though, and can be automatically moved to fast memory 
  279.         by running Set040 again without any arguments.  This is the
  280.         information only mode of Set040 but will recognise the Chip 
  281.         setup and move it and the MMU set-up to FASTRAM, then replace 
  282.         the previously hidden chip memory.  
  283.               
  284.    EXAMPLE
  285.    -------    To install a KICKROM setup from a file called "KICK" in "DEVS:"
  286.                 
  287.         Set040 -k devs:kick
  288.               
  289.         To install a kickrom option from a kickstart disk in df1:
  290.               
  291.         Set040 -k df1:
  292.         
  293.               
  294.         NOTE:    ONCE THIS KICKSTART IS INSTALLED IT CANNOT BE REMOVED WITH THE 
  295.         '-r' FUNCTION. ANY ATTEMPT TO DO SO WILL GIVE AN ERROR.  IF YOU
  296.         WISH TO RETURN TO YOUR ROM BASED KICKSTART, ALL THE IS REQUIRED 
  297.         IS A HARDWARE RESET.  (THERFORE THE KICKROM SETUP WILL NOT 
  298.         SURVIVE A HARDWARE RESET).  
  299.  
  300.         FOR COMPATIBILITY REASONS, WHEN THE CHIPRAM to FASTRAM CHANGE
  301.         IS PERFORMED, THE DATA CACHE WILL ONLY BE ENABLED FOR V2.0X
  302.         KICKSTARTS, AND WILL BE DISABLED FOR OTHER KICKSTARTS.  IF YOU
  303.         WISH TO CHANGE THIS, OR MANIPULATE THE OTHER CACHES, USE THE
  304.         '-c' SWITCH OPTIONS.
  305.               
  306.    ******************
  307.    CACHE MANIPULATION
  308.    ******************           
  309.               
  310.     -c<args> = Manipulate caches as per arguments.
  311.                     
  312.     <args> 
  313.  
  314.     I    = Enable  Instruction cache.
  315.     i    = Disable Instruction cache.
  316.     D    = Enable  Data cache.
  317.     d    = Disable Data cache.
  318.     B    = Enable  both caches.
  319.     b    = Disable both caches.
  320.     C    = Enable  Copyback for $4000000 - $FFFFFFF.
  321.     c    = Disable Copyback for $4000000 - $FFFFFFF.
  322.     A    = Enable  both caches and Copyback for $4000000 - $FFFFFFF
  323.     a    = Disable both caches and Copyback for $4000000 - $FFFFFFF
  324.                               
  325.     NOTE:    Using some of the above switches together would be
  326.         the same as using one single one, -cB is the same as
  327.         -cID, likewise -ca is the same as -cidc.  It has been
  328.         done this way so that each cache can be manipulated
  329.         seperately or manipulated together easily.
  330.                     
  331.    EXAMPLES
  332.    --------    Disable both caches - Set040 -cb
  333.         Enable  both caches - Set040 -cB
  334.         Disable Data Cache  - Set040 -cd
  335.         Enable  Data Cache  - Set040 -cD
  336.         Enable  Ins & Data Caches and disable Copyback - Set040 -cIDc                           
  337.         Enable  Ins & Data Caches and disable Copyback - Set040 -cBc
  338.         Enable  Ins & Data Caches and enable  Copyback - Set040 -cA
  339.         Enable  Ins & Data Caches and enable  Copyback - Set040 -cIDC
  340.         Disable Ins & Data Caches and disable Copyback - Set040 -ca
  341.         ETC...
  342.             
  343.    ****************
  344.    REMOVING FASTROM
  345.    ****************                  
  346.                               
  347.     -r    = Remove the FASTROM remap and reclaim all resources.
  348.    
  349.     NOTE    This function is not possible on a KICKROM setup.
  350.                 
  351.    *************
  352.    CPU SWITCHING
  353.    *************             
  354.                 
  355.     -s    = Switch between the 68040 and 68030 and vice-versa on a 
  356.         PP&S 68040 card in an Amiga A3000-25MHZ.  The program 
  357.         automatically knows the current CPU and will prompt to 
  358.         switch to the opposite one.              
  359.                                
  360.     NOTE ON -s 
  361.         This is the only switch that is permitted on a 
  362.         68030 CPU.  All other switches will display an 
  363.         error.  When this switch is given, a requester 
  364.         will open and will prompt you to either 'CHANGE'
  365.         or 'ABORT' via two gadgets.  If aborted, no 
  366.         further action takes place and the program will
  367.         exit.  If 'CHANGE' is selected, another requester
  368.         will open and prompt you to reboot the computer.
  369.         This requester will have a single 'ABORT' gadget,
  370.         giving you a final chance to abort.  The actual 
  371.         reboot must be done by hand, using the keyboard
  372.         because the PP&S 68040 card requires a hardware 
  373.         reset to switch modes.  This cannot be generated 
  374.         with software.  (NO, the reset instruction will
  375.         not work!) :-( 
  376.               
  377. IMPROVEMENTS
  378.         All suggestions will be carefully considered.
  379.         All bugs will be rectified A.S.A.P.
  380.         I will attempt to overcome all incompatibilities 
  381.         if sufficient information on your particular board
  382.         is supplied ie. amount of onboard ram, address of such
  383.         ram, A3000 or A2000 board, full description of other
  384.         hardware you use, full description of any plug in cards,
  385.         full description of your Amiga, OS version numbers etc!!
  386.                 
  387.         TECHNICAL NOTES
  388.         The average user may not completely understand the following
  389.         notes, suffice to say an understanding of how this program
  390.         works is not required.  Information given here is mainly
  391.         for the benefit of the experienced user or programmer.
  392.         These notes may be of some help if you experience problems
  393.         with certain 68040 cards.
  394.  
  395.         I wrote this program for a few reasons.  To gain knowledge 
  396.         in programming the 68040 processor in assembler and to 
  397.         discover the differences from its older brothers.  I wanted to 
  398.         test Macro68 assembler in 68040 instructions.  When I ran a 
  399.         test of the difference in speed between reading the ROMS and 
  400.         reading FAST RAM, I realized an assembler 68040 MMU program 
  401.         was a necessity.  I found that while reading the ROMS the 
  402.         68040 was only marginally faster than the 68030, yet in FAST 
  403.         RAM the 68040 leaves the 68030 standing.
  404.  
  405.         The MMU set-up remaps the kickstart ROMS to FAST RAM, and 
  406.         allows for instruction caching of the address areas the
  407.         same as for the data areas mentioned below.  This set-up
  408.         protects the new kickstart by marking this area of memory 
  409.         as write-protected in the ATC table entries. 
  410.  
  411.         Re-mapping kickstart to FAST RAM poses a few problems because
  412.         of the design of the 68040 MMU.  Most of the first 16MB of the 
  413.         Amiga memory map must be set for non-cachable serialized.  The 
  414.         rest of the 4 Gigabyte space can be set for cachable copyback,
  415.         but because of limitations of the 68040 MMU, programming this 
  416.         is not easy.  The standard PP&S set-up manages this by using 
  417.         both of the Data Transparent Translation registers.  This works 
  418.         fine but does not allow for re-mapping of the kickstart.  The 
  419.         68040 MMU looks at Transparent Translation registers first, and 
  420.         if an address matches, the ATC tables are not accessed. 
  421.         Therefore a remap of the kickstart would not be seen if we 
  422.         used the same values in the transparent registers as PP&S, or
  423.         Commodore uses. 
  424.     
  425.         The 68040 has a simple 3 level ATC table and page sizes of either
  426.         4k or 8k.  Our set-up discussed here uses the 8k page size.
  427.         If the ATC is used, each entry in the first table covers 32MB.  
  428.         This means that we must at least have entries in this table 
  429.         for that address space.  If we want this entire 32MB to be valid
  430.         we must have complete entries in the second and third tables to 
  431.         cater for it.  This is not a large problem but does use around 
  432.         17k of memory for each 32MB space covered in the table.  The 
  433.         problem is enhanced due to the fact the 68040 does not support 
  434.         'early termination descriptors' as the 68030 did. 
  435.  
  436.         The next problem exists because, two of each data and instruction
  437.         transparent translation registers are not enough to control the 
  438.         rest of the space.  We could put all entries in the ATC tables, 
  439.         but this would mean rather large tables and make it difficult to 
  440.         control the copyback mode over a large area.  This would also mean
  441.         that the CPU040 program from PP&S, and possibly many more 68040 
  442.         copyback manipulation programs would not be compatible.
  443.  
  444.         The set-up I have opted for, is to insert entire entries for the 
  445.         first 64MB of space.  The first 16MB is set in the tables as
  446.         non-cachable serialized.  Copyback mode for the second, third
  447.         and fourth 16MB spaces can be conrolled globally between copyback
  448.         or writethrough at installation time by command line arguments.  
  449.         The address of this entire 48MB space is $1000000 - $3FFFFFF.
  450.  
  451.         The next 64MB address space ($4000000 - $7FFFFFF) is controlled
  452.         by one each of the two data and instruction transparent 
  453.         translation registers for the data and instruction spaces
  454.         respectively.  The data registers are set for cachable copyback
  455.         unless the 'w' argument of the '-f' switch is used at 
  456.         installation.  This can be changed after installation with the 
  457.         '-c<args>' switch.  The instruction registers are set for 
  458.         cachable.
  459.  
  460.         The above caters for the first 16MB and the area defined as 
  461.         'A3000 mother board space'.  Above this area we have a 128MB 
  462.         space which is defined as "ZorroIII 32 bit memory expansion 
  463.         area".  This is controlled by the second data and instruction
  464.         transparent translation registers and can be optionally
  465.         switched between copyback or writethrough after installation
  466.         by command line arguments.  This area will default to copyback 
  467.         at installation unless '-fc' command line argument is given.
  468.  
  469.         All these ATC entries except for the kickstart remap entries
  470.         actually get transparently translated.  The 68040 users guide
  471.         states that if the physical address equals the logical address
  472.         in a page entry, then that entry is transparently translated.
  473.         Transparent translation means that there is no CPU overhead
  474.             to do the translation.  The kickstart remap routine makes use
  475.         of the new 'MOVE16' instruction to copy the ROM into ram.  
  476.         This allows a very fast copy and saves having to call kickstart
  477.         routines to flush the caches after the copy.  A program of this
  478.         kind written in C (with current C compilers) would have to use 
  479.         CopyMemQuick function call and then flush the caches, and this
  480.         would be much slower, whereas my routine is instantaneous.
  481.  
  482.         When programming this set-up I attempted to keep it as compatible
  483.         with the standard set-up from PP&S as possible.  This allows 
  484.         their CPU040 program to still be used to manipulate the copyback 
  485.         mode.  I tried also to keep it compatible with my own CPUSet 
  486.         program that I released at an earlier date.  In doing this it I 
  487.         had to compromise the set-up even further than I would have 
  488.         normally done. 
  489.  
  490.         The PP&S CPU040 program ,my CPUSet program and Commdore's new
  491.         CPU program will only be able to switch copyback address areas 
  492.         that are controlled by the DTT1 register.  This allows them to 
  493.         control memory addresses in the range of $4000000 - $7FFFFFF.  
  494.         This area covers the entire motherboard fast memory in the A3000.
  495.         The '-c<args> options have much greater control over all areas.
  496.  
  497.         The rest of the map has been set as invalid.  The set-up I 
  498.         have opted for should allow for the greatest compatibility 
  499.         between different 68040 cards.  I will change this set-up or 
  500.         supply more options in future versions if necessary.  
  501.  
  502.         ZorroIII memory boards which are addressed within the range
  503.         of $8000000 - $FFFFFFF should work as this is the area that has 
  504.         been assigned for such memory boards.  Other ZorroIII boards that
  505.         are addressed above this area will not work with the current 
  506.         set-up.  I have no knowledge of such cards available at the
  507.         time of writing.
  508.  
  509.  
  510.                  
  511. TRADEMARKS 
  512.                
  513.     AmigaDOS, Amiga and Kickstart are trademarks of Commodore Amiga Inc.
  514.     PP&S is an abbreviation for Progressive Peripherals and Software.
  515.     MC68030, MC68040 and Motorola are trademarks of Motorola Inc.               
  516.                 
  517. REFERENCES
  518.                 
  519.     M68000PM/AD  Programmers Reference Manual (inc. CPU32)
  520.     Published by Motorola Literature Distribution USA.
  521.     M68000UM/AD  8-/16-/32-Bit MicroProcessor User's Manual Eigth Edition.
  522.     Published by PRENTICE HALL, Englewood Cliffs, N.J. 07632
  523.     MC68040UM/AD 32-Bit MicroProcessor User's Manual
  524.     Published by Motorola Literature Distribution USA.
  525.     MC68030UM/AD 32-Bit MicroProcessor User's Manual
  526.     Published by Motorola Literature Distribution USA.
  527.                 
  528.